package org.hs.im.forensicj.view;

import java.awt.Component;
import java.awt.image.RenderedImage;

public interface ImageViewer {

	enum MouseMode{NORMAL, SELECTION, PAN, ZOOM_IN, ZOOM_OUT, ZOOM_TO_REGION};
	
	void setNormalMouseMode();

	void setSelectionMouseMode();

	void setPanMouseMode();

	void setZoomInMouseMode();
	void setZoomOutMouseMode();
	void setZoomToRegionMouseMode();

	void zoomToActualImageResolution();
	void zoomToFitToWindow();
	void zoomToFillToWindow();

	void copyToClipboard();
	void cutToClipboard();
	void pasteFromClipboard();


	void rotateLeft();
	void rotateRight();
	
	void flipVertical();
	void flipHorizontal();
	
	void undo();
	void redo();

	void cropToSelection();

	Component getComponent();

	double getZoomLevel();
	void setZoomLevel(double zoomLevel);

	void addImageViewerListener(ImageViewerListener imageViewerListener);

	RenderedImage getImage();
	void setImage(RenderedImage image);

}
